package com.ctshk.rpc.hotel.req.h5;

import com.ctshk.common.model.PageReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.List;

/**
 * <p>
 * 酒店订单信息req
 * </p>
 *  */
@Data
@ApiModel(description="酒店信息req-C端-APP/H5")
public class HotelQueryReq extends PageReq implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "城市名称(城市的中文名称)", example = "深圳")
    private String cityName;

    @ApiModelProperty(value = "酒店名/位置")
    private String searchName;

    @NotNull(message = "请填写入住日期")
    @ApiModelProperty(value = "入住日期", example = "2021-05-01", required = true)
    private LocalDate checkInDate;

    @NotNull(message = "请填写离店日期")
    @ApiModelProperty(value = "离店日期", example = "2021-05-03", required = true)
    private LocalDate checkOutDate;

    @NotNull(message = "请填写房间数")
    @ApiModelProperty(value = "房间数", required = true)
    private Integer roomNum;

    @NotNull(message = "成人数不能为空")
    @ApiModelProperty(value = "成人数", example = "2", required = true)
    private Integer adultNum;

    @NotNull(message = "小童数不能为空")
    @ApiModelProperty(value = "小童数-没有传0", example = "4", required = true)
    private Integer childrenNum;

    @ApiModelProperty(value = "总人数", example = "4", hidden = true)
    private Integer peopleNum;

    @ApiModelProperty(value = "是否需要加床,入住人数有余数时使用", hidden = true)
    private Boolean isAddBed;

    @ApiModelProperty(value = "酒店星级", example = "[2,3,4]")
    private List<Integer> starLevels;

    @ApiModelProperty(value = "酒店位置ID(第一版先不做)")
    private List<Long> businessDistrictIds;

    @ApiModelProperty(value = "酒店设施id数组(第一版先不做)")
    private List<Long> facilitiesIds;

    @ApiModelProperty(value = "最低价")
    private BigDecimal minPrice;

    @ApiModelProperty(value = "最高价")
    private BigDecimal maxPrice;

    @ApiModelProperty(value = "排序(1=默认排序,2=低价优先,3=高价优先)", example = "1")
    private Integer sort;

}
